home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / mail / Mutt089src.lha / Mutt-0.89i-AMIGA / src / mutt_curses.h < prev    next >
C/C++ Source or Header  |  1998-01-28  |  4KB  |  159 lines

  1. /*
  2.  * Copyright (C) 1996-8 Michael R. Elkins <me@cs.hmc.edu>
  3.  * 
  4.  *     This program is free software; you can redistribute it and/or modify
  5.  *     it under the terms of the GNU General Public License as published by
  6.  *     the Free Software Foundation; either version 2 of the License, or
  7.  *     (at your option) any later version.
  8.  * 
  9.  *     This program is distributed in the hope that it will be useful,
  10.  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *     GNU General Public License for more details.
  13.  * 
  14.  *     You should have received a copy of the GNU General Public License
  15.  *     along with this program; if not, write to the Free Software
  16.  *     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  */ 
  18.  
  19. #ifdef USE_SLANG_CURSES
  20.  
  21. #ifndef unix /* this symbol is not defined by the hp-ux compiler (sigh) */
  22. #define unix
  23. #endif /* unix */
  24.  
  25. #include "slcurses.h"
  26.  
  27. #define KEY_DC SL_KEY_DELETE
  28. #define KEY_IC SL_KEY_IC
  29.  
  30. /*
  31.  * ncurses and SLang seem to send different characters when the Enter key is
  32.  * pressed, so define some macros to properly detect the Enter key.
  33.  */
  34. #define M_ENTER_C '\r'
  35. #define M_ENTER_S "\r"
  36.  
  37. #else
  38.  
  39. #ifdef HAVE_NCURSES_H
  40. #include <ncurses.h>
  41. #else
  42. #include <curses.h>
  43. #endif
  44.  
  45. #define M_ENTER_C '\n'
  46. #define M_ENTER_S "\n"
  47.  
  48. #endif /* USE_SLANG_CURSES */
  49.  
  50. /* AIX defines ``lines'' in <term.h>, but it's used as a var name in
  51.  * various places in Mutt
  52.  */
  53. #ifdef lines
  54. #undef lines
  55. #endif /* lines */
  56.  
  57. #include "mutt_regex.h"
  58.  
  59. #define CLEARLINE(x) move(x,0), clrtoeol()
  60. #define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x)
  61. #define BEEP if (option (OPTBEEP)) beep
  62.  
  63. #if ! (defined(USE_SLANG_CURSES) || defined(HAVE_CURS_SET))
  64. #define curs_set(x)
  65. #endif
  66.  
  67. #if !defined(USE_SLANG_CURSES) && defined(HAVE_BKGDSET)
  68. #define BKGDSET(x) bkgdset (ColorDefs[x] | ' ')
  69. #else
  70. #define BKGDSET(x)
  71. #endif
  72.  
  73. #define PAGELEN (LINES-3)
  74.  
  75. #define ctrl(c) ((c)-'@')
  76.  
  77. #define CI_is_return(c) ((c) == '\r' || (c) == '\n' || (c) == KEY_ENTER)
  78.  
  79. int mutt_getch (void);
  80.  
  81. void mutt_endwin (const char *);
  82. void mutt_flushinp (void);
  83. void mutt_refresh (void);
  84. void mutt_resize_screen (void);
  85. void mutt_ungetch (int);
  86.  
  87. /* ----------------------------------------------------------------------------
  88.  * Support for color
  89.  */
  90.  
  91. enum
  92. {
  93.   MT_COLOR_HDEFAULT = 0,
  94.   MT_COLOR_QUOTED,
  95.   MT_COLOR_SIGNATURE,
  96.   MT_COLOR_INDICATOR,
  97.   MT_COLOR_STATUS,
  98.   MT_COLOR_TREE,
  99.   MT_COLOR_NORMAL,
  100.   MT_COLOR_ERROR,
  101.   MT_COLOR_TILDE,
  102.   MT_COLOR_MARKERS,
  103.   MT_COLOR_BODY,
  104.   MT_COLOR_HEADER,
  105.   MT_COLOR_MESSAGE,
  106.   MT_COLOR_ATTACHMENT,
  107.   MT_COLOR_SEARCH,
  108.   MT_COLOR_BOLD,
  109.   MT_COLOR_UNDERLINE,
  110.   MT_COLOR_MAX
  111. };
  112.  
  113. typedef struct color_line
  114. {
  115.   regex_t rx;
  116.   char *pattern;
  117.   short fg;
  118.   short bg;
  119.   int pair;
  120.   struct color_line *next;
  121. } COLOR_LINE;
  122.  
  123. extern int *ColorQuote;
  124. extern int ColorQuoteUsed;
  125. extern int ColorDefs[];
  126. extern COLOR_LINE *ColorHdrList;
  127. extern COLOR_LINE *ColorBodyList;
  128.  
  129. void ci_init_color (void);
  130. void ci_start_color (void);
  131.  
  132. #define SETCOLOR(X) attrset(ColorDefs[X])
  133.  
  134. #define MAYBE_REDRAW(x) if (option (OPTNEEDREDRAW)) { unset_option (OPTNEEDREDRAW); x = REDRAW_FULL; }
  135.  
  136. /* ----------------------------------------------------------------------------
  137.  * These are here to avoid compiler warnings with -Wall under SunOS 4.1.x
  138.  */
  139.  
  140. #if !defined(STDC_HEADERS) && !defined(NCURSES_VERSION) && !defined(USE_SLANG_CURSES)
  141. extern int endwin();
  142. extern int printw();
  143. extern int beep();
  144. extern int isendwin();
  145. extern int w32addch();
  146. extern int keypad();
  147. extern int wclrtobot();
  148. extern int mvprintw();
  149. extern int getcurx();
  150. extern int getcury();
  151. extern int noecho();
  152. extern int wdelch();
  153. extern int wrefresh();
  154. extern int wmove();
  155. extern int wclear();
  156. extern int waddstr();
  157. extern int wclrtoeol();
  158. #endif
  159.